/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package jforum.actions;

import java.util.Collections;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import jforum.DAO.MessageDAO;
import jforum.domain.Message;
import jforum.domain.User;
import jforum.util.AuthModule;
import jforum.util.DBConnector;

/**
 * Действие просмотра ответов на сообщения
 * @author Вадим
 */
public class ViewMessageAction implements Action {

    public String perform(HttpServletRequest request, HttpServletResponse response) throws Exception {
        String str_id = request.getParameter("id");
        int id=-1;
        try {
            id=Integer.parseInt(str_id);
        } catch (NumberFormatException ex) {
            request.getSession().setAttribute("errorMessage", "Id сообщения должно быть натуральным числом.");
            return ActionNames.error_page;
        }

        DBConnector conn=DBConnector.getInstance();
        MessageDAO dao=new MessageDAO(conn);
        // грузим всех потомков (ответы)
        List<Message> messages = dao.LoadDescendants(id);
        Collections.sort(messages);
        request.setAttribute("messages", messages);
        request.setAttribute("pid", id);

        User user=AuthModule.getUser(request.getCookies());
        if (user!=null)
            request.setAttribute("user", user);

        return ActionNames.message_page;
    }

}
